home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / aie8911.zip / LISTING.4 < prev    next >
Text File  |  1989-08-27  |  1KB  |  55 lines

  1.  
  2.  
  3.                      Listing 4
  4.  
  5.                 LOOP EXECUTION
  6.  
  7. do_a_loop( Frame) :-
  8.             % get rid of old definitions
  9.       abolish( zzz_loop / 0),
  10.       abolish( zzz_loop_hlpr / 0),
  11.  
  12.             % get purpose of procedure defined in stub
  13.       frame_slot_val( purpose, Frame, Purpose),
  14.  
  15.             % get purpose in past form
  16.       done_it_prompt( Purpose , Done ),
  17.  
  18.             % get prompt to ask for repeating loop
  19.       another_prompt( Purpose , More ),
  20.  
  21.             % define question to ask user
  22.       Question =
  23.               yes(  log_write( More ) ,
  24.                     q_means_no,
  25.                     do_quit  ) ,
  26.  
  27.             % define the simulated loop
  28.       Loop_rule1 =
  29.         (zzz_loop :-
  30.             repeat,
  31.               zzz_loop_hlpr),
  32.       assertz(  Loop_rule1 ),
  33.  
  34.       Loop_rule2 = zzz_loop,
  35.       assertz(  Loop_rule2 ),
  36.  
  37.             % and the helper functions for the loop
  38.       Loop_hlpr_rule1 =
  39.           (  zzz_loop_hlpr :-
  40.               Question,
  41.               !,
  42.               log_write( Done),
  43.               log_nl,
  44.               fail),
  45.       assertz(  Loop_hlpr_rule1 ),
  46.  
  47.       Loop_hlpr_rule2 =
  48.           (  zzz_loop_hlpr :- ! ),
  49.       assertz(  Loop_hlpr_rule2 ),
  50.  
  51.             % now execute the loop
  52.       call( zzz_loop ).
  53.  
  54. ---------------- end of listing -----------------------------------
  55.